Red Hat System Administration II 8.2

Упражнение под руководством преподавателя: Защита файлов с помощью ACL

В этом упражнении вы будете использовать записи ACL, чтобы предоставить группе доступ к каталогу и запретить доступ пользователю, зададите ACL по умолчанию для каталога и убедитесь, что новые файлы, создаваемые в этом каталоге, наследуют ACL по умолчанию.

Результаты

Вы сможете:

  • с помощью записей ACL предоставить доступ группе и запретить доступ одному из ее участников;

  • убедиться, что существующие файлы и каталоги отражают новые разрешения ACL;

  • задать ACL по умолчанию для каталога и убедиться, что новые файлы и каталоги наследуют его конфигурацию.

Войдите на workstation как пользователь student с паролем student.

На workstation выполните команду lab acl-secure start. Эта команда запускает подготовительный сценарий, который проверяет доступность машины servera в сети. Сценарий также создает пользователей, группы, каталоги и файлы для этого упражнения.

[student@workstation ~]$ lab acl-secure start

Операторы и консультанты являются сотрудниками компании ИТ-поддержки. Им нужно обмениваться информацией друг с другом. На servera есть правильно настроенный общий каталог /shares/content, в котором размещены файлы.

В настоящее время только у участников группы operators есть доступ к этому каталогу, но участниками группы consultants также необходим полный доступ.

Пользователь consultant1 является участником группы consultants, но он неоднократно создавал проблемы компании, поэтому у него не должно быть доступа к каталогу.

Ваша задача — настроить ACL для этого каталога и его содержимого так, чтобы у участников группы consultants, за исключением пользователя consultant1, был полный доступ. Убедитесь, что новые файлы и каталоги в /shares/content получат правильные ACL.

Важная информация:

  • Пользователи sysadmin1 и оператор1 ― участники группы operators.

  • Пользователи consultant1 и consultant2 ― участники группы consultants.

  • Каталог /shares/content содержит подкаталог с именем server-info и различные файлы для проверки ACL. Кроме того, каталог /shares/content содержит исполняемый сценарий loadvg.sh, который можно использовать для тестирования.

  • Пароли пользователей sysadmin1, operator1, consultant1 и consultant2 ― redhat.

  • Все изменения должны выполняться с каталогом /shares/content и файлами, находящимися в нем. Не изменяйте каталог /shares.

  1. Войдите на servera и переключитесь на пользователя root.

    1. С помощью команды ssh войдите на servera как пользователь student. Системы настроены на использование ключей SSH для аутентификации, поэтому пароль не требуется.

      [student@workstation ~]$ ssh student@servera
      ...output omitted...
      [student@servera ~]$ 
    2. Выполните команду sudo -i, чтобы переключиться на пользователя root. Пароль для пользователя student — student.

      [student@servera ~]$ sudo -i
      [sudo] password for student: student
      [root@servera ~]# 
  2. Добавьте ACL для каталога /shares/content и всего его содержимого.

    1. С помощью команды setfacl рекурсивно обновите разрешения для каталога /shares/content. Предоставьте группе consultants разрешения на чтение, запись и условное выполнение.

      [root@servera ~]# setfacl -Rm g:consultants:rwX /shares/content

      Опция -R означает «рекурсивно», -m ― изменение/добавление, rwX ― применение разрешений на чтение, запись и условное выполнение.

    2. С помощью команды setfacl рекурсивно обновите разрешения для каталога /shares/content. Запретите пользователю consultant1 из группы consultants любой доступ.

      [root@servera ~]# setfacl -Rm u:consultant1:- /shares/content

      Опция -R означает «рекурсивно», -m ― изменение/добавление, «-» ― отказ в доступе.

  3. Добавьте записи ACL по умолчанию для включения механизма наследования.

    1. С помощью команды setfacl добавьте правило доступа по умолчанию для группы consultants. Предоставьте разрешения на чтение, запись и выполнение для каталога content.

      [root@servera ~]# setfacl -m d:g:consultants:rwx /shares/content

      Опция -m означает изменение/добавление, d:g — группа по умолчанию, rwx — применение разрешений на чтение, запись и выполнение (для создания подкаталогов и доступа к ним).

    2. С помощью команды setfacl добавьте правило доступа по умолчанию для пользователя consultant1. Полностью запретите доступ к каталогу content.

      [root@servera ~]# setfacl -m d:u:consultant1:- /shares/content

      Опция -m означает изменение/добавление, d:u ― пользователь по умолчанию, «-» ― отсутствие разрешений

  4. Проверьте изменения ACL.

    У пользователя consultant2 должна быть возможность читать любой файл и создать новый каталог с новым файлом.

    У пользователя consultant1 не должно быть возможности читать, изменять и выполнять какие-либо файлы; в частности, ему запрещено отображать содержимое каталога.

    Используйте команду su - user для переключения на тестовых пользователей. Используйте команду exit или Ctrl+D для выхода из тестовой оболочки.

    [root@servera ~]# exit
    [student@servera ~]$ su - consultant2
    Password: redhat
    [consultant2@servera ~]$ cd /shares/content/
    1. Выполните команду cat, чтобы убедиться, что пользователь consultant2 может читать файл.

      [consultant2@servera content]$ cat serverb-loadavg.txt
      #################################################
      serverb.lab.example.com
      #################################################
      Wed Mar 25 15:25:19 EDT 2019
      #################################################
      ldavg 0.18, 0.06, 0.05
      #################################################
    2. Запустите сценарий loadavg.sh, чтобы убедиться, что пользователь consultant2 может выполнить файл.

      [consultant2@servera content]$ ./loadavg.sh
      ldavg 0.00, 0.00, 0.04
    3. Создайте каталог с именем reports.

      Выполните команду echo, чтобы создать файл с любым содержимым, назовите файл test.txt и поместите его в новый каталог.

      Закончив, переключитесь обратно на пользователя student.

      [consultant2@servera content]$ mkdir reports
      [consultant2@servera content]$ echo "TEST REPORT" > reports/test.txt
      [consultant2@servera content]$ exit
      logout
      [student@servera ~]$ 
    4. Выполните вход как пользователь consultant1. Как пользователь consultant1 выполните команду cd, чтобы попробовать перейти в каталог, а также попробуйте отобразить содержимое каталога с помощью команды ls. Ни одна из команд не будет выполнена, и будет выдано сообщение Permission denied.

      Как пользователь consultant1 попробуйте выполнить еще несколько команд, которые выполнялись для пользователя consultant2, чтобы дополнительно убедиться в отсутствии доступа. Используйте полный путь (/shares/content), поскольку вы не можете использовать cd для перехода в каталог.

      Закончив тестирование разрешений под пользователем consultant1, переключитесь обратно на пользователя student.

      [student@servera ~]$ su - consultant1
      Password: redhat
      [consultant1@servera ~]$ cd /shares/content/
      -bash: cd: /shares/content/: Permission denied
      [consultant1@servera ~]$ ls /shares/content/
      ls: cannot open directory '/shares/content/': Permission denied
      [consultant1@servera ~]$ cat /shares/content/serverb-loadavg.txt
      cat: /shares/content/serverb-loadavg.txt: Permission denied
      [consultant1@servera ~]$ exit
      logout
      [student@servera ~]$ 
    5. Выполните вход как пользователь sysadmin1. Используйте команду getfacl, чтобы отобразить записи ACL для каталогов /shares/content и /shares/content/reports.

      Закончив тестирование разрешений под пользователем consultant1, переключитесь обратно на пользователя student.

      [student@servera ~]$ su - sysadmin1
      Password: redhat
      [sysadmin1@servera ~]$ getfacl /shares/content
      getfacl: Removing leading '/' from absolute path names
      # file: shares/content/
      # owner: root
      # group: operators
      # flags: -s-
      user::rwx
      user:consultant1:---
      group::rwx
      group:consultants:rwx
      mask::rwx
      other::---
      default:user::rwx
      default:user:consultant1:---
      default:group::rwx
      default:group:consultants:rwx
      default:mask::rwx
      default:other::---
      
      [sysadmin1@servera ~]$ getfacl /shares/content/reports
      getfacl: Removing leading '/' from absolute path names
      # file: shares/content/reports
      # owner: consultant2
      # group: operators
      # flags: -s-
      user::rwx
      user:consultant1:---
      group::rwx
      group:consultants:rwx
      mask::rwx
      other::---
      default:user::rwx
      default:user:consultant1:---
      default:group::rwx
      default:group:consultants:rwx
      default:mask::rwx
      default:other::---
      
      [sysadmin1@servera ~]$ exit
      logout
      [student@servera ~]$ 
    6. Выйдите с servera.

      [student@servera ~]$ exit
      logout
      Connection to servera closed.
      [student@workstation ~]$ 

Конец

На workstation запустите сценарий lab acl-secure finish, чтобы закончить упражнение.

[student@workstation ~]$ lab acl-secure finish

Упражнение завершено.